<?php

class Autoevaluacion_CompletitudController extends Zend_Controller_Action {
    
    private $nav;
    
    public function init() {
        parent::init();
        
        $this->nav = new App_Util_Navegacion();
		$this->nav->agregar_navegacion("Listas de encuestas", "/autoevaluacion/completitud/index");
		$this->view->nav = $this->nav;
    }

    public function indexAction() {
        $listasService = new Autoevaluacion_Model_Listas();
        
        if($this->getRequest()->isPost()) {
            //se esta guardando la asignacion de lista de factores
            $form = new Autoevaluacion_Form_AsignarListaFactores();
            if($form->isValid($this->getRequest()->getPost())) {
                try {
    				$listasService->guardarLista($form->getValues());
    				$codlista = $this->view->priorityMessenger("La asignación se ha guardado correctamente.", "success");
    				$this->_helper->redirector("index");
    			
    			} catch(Exception $e) {
    				$this->view->priorityMessenger($e->getMessage(), "error");
    			}
            }
        }
        
        $this->view->datos = $listasService->getListasCompletitud();
        //Zend_Debug::dump($this->view->datos);
    }
    
    public function ajaxAction() {
        if($this->hasParam("codlista")) {
            if($this->hasParam("listafactores")) {
                $this->_helper->layout()->disableLayout();
                $codlista = $this->getParam("codlista");
                
                $form = new Autoevaluacion_Form_AsignarListaFactores();
                $form->setAction($this->view->baseUrl("/autoevaluacion/completitud/index"));
                $form->getElement("codlista")->setValue($codlista);
                
                $listasService = new Autoevaluacion_Model_Listas();
                $datos = $listasService->getListasFactores();
                foreach($datos as $value) {
                    $form->getElement("codlistafactores")->addMultiOption($value["codlista"], $value["nombre"]);
                }
                $lista_datos = $listasService->getLista($codlista);
                if(!empty($lista_datos["codlistafactores"])) {
                    $form->getElement("codlistafactores")->setValue($lista_datos["codlistafactores"]);
                }
                $this->view->form = $form;
                $this->render("detalle");
            }
    	}
    }
    
    public function crearAction() {
    	$this->nav->agregar_navegacion("Crear lista", "");

    	$listasService = new Autoevaluacion_Model_Listas();
    	
    	$form = new Autoevaluacion_Form_DetalleLista();
    	$form->getElement("tipolista")->setValue("C"); //tipolista = Completitud
    	$form->getElement("codsubtipolista")->addMultiOptions($listasService->getSubTipoListasCompletitudForSelect());
    	$form->setAction($this->view->baseUrl("/autoevaluacion/completitud/crear"));
    	
    	if($this->getRequest()->isPost() && $form->isValid( $this->getRequest()->getPost() )) {
			try {
				$listasService->guardarLista($form->getValues());
				$codlista = $this->view->priorityMessenger("Los datos se han guardado correctamente.", "success");
				
				$this->_helper->redirector("index");
			
			} catch(Exception $e) {
				$this->view->priorityMessenger($e->getMessage(), "error");
			}
    	}
    	$this->view->form = $form;
        $this->render("detalle");
    }
    
    public function modificarAction() {
        $listasService = new Autoevaluacion_Model_Listas();
    	$form = new Autoevaluacion_Form_DetalleLista();
    	$form->setAction($this->view->baseUrl("/autoevaluacion/completitud/modificar"));
    	$form->getElement("codsubtipolista")->addMultiOptions($listasService->getSubTipoListasCompletitudForSelect());
            	
    	$codlista = $this->_getParam("codlista");
		if(empty($codlista)) {
			$this->_helper->redirector("index");
		}

        if($this->getRequest()->isGet()) {
			$infoLista = $listasService->getLista($codlista);
			$form->populate($infoLista);
		}
		if($this->getRequest()->isPost() && $form->isValid( $this->getRequest()->getPost() )) {
			try {
				$listasService->guardarLista($form->getValues());
				$this->view->priorityMessenger("Los datos se han guardado correctamente.", "success");
			
			} catch(Exception $e) {
				$this->view->priorityMessenger($e->getMessage(), "error");
			}
		}
				
		$this->nav->modificar_navegacion("Listas de completitud", "/listas/completitud/index");
    	$this->nav->agregar_navegacion("Modificar lista: {$form->getElement("nombre")->getValue()}", "");
    	
    	$this->view->form = $form;
		$this->render("detalle");
    }
    
    public function ingresarseccionesAction() {
    	$sesionListas = new Zend_Session_Namespace("LISTAS");
    	$codlista = $this->_getParam("codlista");
    	
    	$listasService = new Autoevaluacion_Model_Listas();
    	$sesionListas->infoLista = $listasService->getLista($codlista);
    	$sesionListas->infoSeccion = null;
    	$this->_helper->redirector("index", "secciones");
    }
    
    public function diligenciarAction() {
        $Proceso = new Solicitudes_Model_DetalleSolicitud();
        $datosproceso = $Proceso->cargardatosProceso($this->_getParam("codproceso"));
        
        $solicitudes = new Solicitudes_Model_Solicitudes();
        $datos_solicitud = $solicitudes->cargarDatos($datosproceso["codsolicitud"]);
        
        $codestado = $this->_getParam("codestado");
        
        if (!empty($codestado)){
        	$datosproceso["codestado"] = $codestado;
        }else{
        
	        if ($datosproceso["codestado"] == Solicitudes_Model_Historicoprocesos::CONDICIONES_INICIALES){
	        	$datosproceso["codestado"] = 2;
	        }
	        if ($datosproceso["codestado"] == Solicitudes_Model_Historicoprocesos::EN_AUTOEVALUACION){
	        	$datosproceso["codestado"] = 21;
	        }
        }
	     
        $actionConfig = Zend_Registry::get("actionConfig");
        $listas = $actionConfig->LISTA_COMPLETITUD->toArray();
		$lalista =  $listas[$datos_solicitud["tiposolicitud"]][$datosproceso["codestado"]];
		
    	$sesionListas = new Zend_Session_Namespace("LISTAS");
        $listasService = new Autoevaluacion_Model_Listas();
    	$sesionListas->infoLista = $listasService->getListaActiva("C",$lalista);
    	$sesionListas->codproceso = $this->_getParam("codproceso");
    	$sesionListas->codsolicitud = $this->_getParam("codsolicitud");
    	$this->_helper->redirector("index","diligenciar");
    	
    }
}//fin de la clase

